/**
 * Created by wutian on 2015/5/19.
 */
define('createForm', function() {
    return createForm = avalon.define({
        $id: 'createForm',
        row: 1,
        col: 10,
        num:0,

        //改变textarea文本域的高度
        changeHeight: function () {
            if( createForm.num++ == createForm.row*createForm.col - 1){
                // 新增两行
                createForm.row += 2;
            }
        },

        type: '',  // 型号
        color: '',  // 颜色
        person: '',  // 联系人
        tel: '',  // 联系电话
        address: '',  // 联系地址
        fittingList: [1],  // 重要配件

        fittingName: '',  // 输入的配件名称
        fittingType: '',  // 输入的配件型号
        fittingNum: '',  // 输入的配件个数

        showList: [],  // 页面显示重要配件数组
        submitList: [],  // 提交给后台的重要配件ID

        // 点击‘添加重要配件’
        verifyAdd: function() {
            if (createForm.fittingName !== '' && createForm.fittingType !== '' &&
                createForm.fittingNum !== '') {
                createForm.showList.push({
                    fittingName: createForm.fittingName,
                    fittingType: createForm.fittingType,
                    fittingNum: createForm.fittingNum,
                    id: 0
                });

                // 提交重要配件数据（一组）
                createForm.submitFitting();

                createForm.fittingName = '';
                createForm.fittingType = '';
                createForm.fittingNum = '';
            } else {
                tip.on('请填写完整！！！', 0, 5000);
            }
        },

        // 删除-重要配件
        del: function(index) {
            createForm.showList.splice(index, 1);
            createForm.submitList.splice(index, 1);
            //alert(createForm.submitList);
        },

        // 提交重要配件
        submitFitting: function() {
            $.call({
                type: 'post',
                i: '7AddAccessories',
                data: {
                    Name: createForm.fittingName,
                    Model: createForm.fittingType,
                    Number: createForm.fittingNum
                },
                success: function (data) {
                    if (data.c == 200) {
                        createForm.submitList.push(data.d.AccessoriesID);
                        tip.on('重要配件数据提交成功！',1,4000);
                        //alert(data.d.AccessoriesID);
                    }
                    else {
                        tip.on(data.m,0,6000);
                    }
                }
            });
        },

        errorPerform: '',  // 故障表现
        memo: '',  // 备注

        // 表单验证（型号、颜色、联系人、联系电话、故障表现必填）


        // 创建前对重要配件数组进行处理-转换为字符串
        fitting: '',  // 转换后的字符串
        toChar: function() {
            createForm.fitting = createForm.submitList.join(',');
        },

        // 验证电话号码
        tipTelFont: '联系电话不能为空',  // 电话号码提示语

        verifyTel: function () {
            //验证电话
            var v = /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/;

            if (v.exec(createForm.tel)) {
                createForm.tipTel = 0;
            }
            else if (createForm.tel !== '') {
                createForm.tipTelFont = '电话号码格式不正确！';
                createForm.tipTel = 1;
            }
            else{
                createForm.tipTelFont = '电话号码不能为空';
                createForm.tipTel = 1;
            }
        },

        // 验证表单输入是否合格
        tipType: 0,    // 型号提示是否显示
        tipColor: 0,    // 颜色提示是否显示
        tipPerson: 0,   // 联系人提示是否显示
        tipTel: 0,  // 联系电话提示是否显示
        tipAddress: 0,  // 联系地址提示是否显示
        tipErrorP: 0,    // 故障表现提示是否显示

        verifyForm: function(id) {

            switch (id) {
                case 1:
                    createForm.tipType = createForm.type === '' ? 1 : 0;
                    break;
                case 2:
                    createForm.tipColor = createForm.color === '' ? 1 : 0;
                    break;
                case 3:
                    createForm.tipPerson = createForm.person === '' ? 1 : 0;
                    break;
                case 4:
                    createForm.tipTel = createForm.tel === '' ? 1 : 0;
                    break;
                case 5:
                    createForm.tipAddress = createForm.address === '' ? 1 : 0;
                    break;
                case 6:
                    createForm.tipErrorP = createForm.errorPerform === '' ? 1 : 0;
                    break;
                default :
                    break;
            }

            // 验证表单填写是否全部合格：合格返回1，不合格返回0
            if(createForm.type !== '' && createForm.color !== '' && createForm.person !== '' && createForm.tel !== '' &&
                createForm.address !== '' && createForm.errorPerform !== '') {
                return 1;
            } else {
                return 0;
            }
        },

        // 创建
        create: function() {

            // 验证表单输入是否合格
            if (createForm.verifyForm(7)) {

                // 将存储重要配件ID的数组转换成字符串
                createForm.toChar();

                $.call({
                    type: 'post',
                    i: '7AddOrder',
                    data: {
                        Model: createForm.type,
                        Color: createForm.color,
                        Contact: createForm.person,
                        Phone: createForm.tel,
                        Address: createForm.address,
                        AccessoriesID: createForm.fitting,
                        Phenomenon: createForm.errorPerform,
                        Memo: createForm.memo,
                        Status: 1
                    },
                    success: function (data) {
                        if (data.c == 200) {
                            tip.on('创建成功！',1,4000);

                            // 将数据清空
                            createForm.type = '';
                            createForm.color = '';
                            createForm.person = '';
                            createForm.tel = '';
                            createForm.address = '';
                            createForm.fitting = '';
                            createForm.errorPerform = '';
                            createForm.memo = '';
                            createForm.showList = [];
                            createForm.submitList = [];
                            createForm.fittingName = '';
                            createForm.fittingType = '';
                            createForm.fittingNum = '';

                        }
                        else {
                            tip.on('提交失败，请重新提交！',0,6000);
                        }
                    }
                });
            }
            else {
                tip.on('表单填写不完整',0,6000);
            }
        }
    });
});